'''
Created on Aug 20, 2012

@author: levilucio
'''

class ImpossibleIndirectEdges(Exception):
    """ Raised when the indirect edges are not possible
    in the given graph """
    pass

class NotBijectiveMetamodelError(Exception):
    """ Raised when a typed graph is not a metamodel
    because the typing relation is not bijective """
    pass

class ModelDoesNotConform(Exception):
    """ Raised when a model is not an instance of its
    declared metamodel """
    pass

class BackwardLinksNotSound(Exception):
    """ Raised when the backward link vertices are not
    such that the source of the edge is on the match model
    and the target of the edge is on the apply model"""
    pass

class NotDisjointGraphs(Exception):
    """ Raised when the backward link vertices are not
    such that the source of the edge is on the match model
    and the target of the edge is on the apply model"""
    pass

class IsNotMatchApplyModel(Exception):
    """ Raised when an object is not """
    pass

class InvalidIndirectLinks(Exception):
    """ Raised when the indirect links for an indirect
    typed graph are not possible in the graph or the paths
    include links which are not containment """
    pass
